package com.wh.order.service;

import com.wh.basic.vo.AjaxResult;
import com.wh.order.dto.*;

import com.wh.order.pojo.OrderExamine;
import com.wh.order.pojo.OrderList;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.wh.order.pojo.OrderReviewer;
import com.wh.order.util.OrderExport;
import com.wh.order.vo.OrderProductVo;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

/**
* 业务接口；
*/
public interface IOrderListService extends IService<OrderList> {

    IPage<OrderList> getAuditOrders(AuditOrdersDto auditOrdersDto);

    /*void updateState(Long id);*/

    IPage<OrderList> findByPage(PageDto pageDto);
//    IPage<OrderList> findByPage(OrderListQueryDto orderListQueryDto, HttpServletRequest request);

    void saveOrder(OrderList orderList);
    

    void sendoutgoods(OrderList orderList);


    void cancel(OrderList orderList);
    

    Integer allNum();

    Map<String, Long> getTime();

    Map<String, Object> getOrderDataCount(String type);

    void Examine(OrderReviewer OrderReviewer);

    void editOrder(OrderList orderList);

    IPage<OrderList> getCustomerOrders(CustomerOrderDto customerOrderDto);

    IPage<OrderList> findByPageMyOrder(PageDto pageDto);

    OrderList findOne(String orderSn);

    Map<String, Object> getTotalAmount(String type);

    List<OrderProductVo> getHotProductCount(String type);

    OrderExport export(List<OrderExportDto> exportDto,String[] orderSn);





    void exportOrdersAsync(HttpServletResponse response, List<String> orderSn);

    AjaxResult importOrder(MultipartFile file);

    IPage<OrderList> customerServiceFindByPage(PageDto pageDto);

    void takeDelivery(String orderSn);
}

